Entities often generate and use data that is important in some way to their operations. This data can include, for example, business data, financial data, and personnel data. If this data were lost or compromised, the entity may realize significant adverse financial and other consequences. Accordingly, many entities have chosen to back up some or all of their data so that in the event of a natural disaster, unauthorized access, or other events, the entity can recover any data that was compromised or lost, and then restore that data to one or more locations, machines, and/or environments.
While data backup is a valuable and important function, the ever increasing volume of data that is generated presents significant problems. Thus, many companies today find their backup and recovery processes strained as data growth in enterprise IT environment continues to accelerate at exponential rates, while data-protection solutions have struggled to keep pace. At least some of the problems encountered in connection with backup processes concern the way in which backup resources are provisioned.
For example, one approach to providing backup resources is provisioning static backup resource capacity. In general, this type of provisioning may involve identifying and reserving backup resources expected to be needed for one or more backup processes. In this way, some assurance can be provided that a certain amount backup resources will be available at the time the backup is to be performed. As discussed below however, provisioning static capacity lacks the flexibility to respond to changing backup requirements. Moreover, this lack of flexibility causes inefficiencies in that it can result in overutilization of some backup resources and/or underutilization of other backup resources.
With regard to the problem of flexibility, customer backups are sometimes scheduled on a daily or other periodic basis, and may be performed with respect to one or more of a variety of variables, one example of which is object type. Thus, the amount of backup work to be performed during any given time period can vary significantly depending on such considerations as the volume of customer changes that have been made concerning the various object types. As well, the volume of changes can vary from one customer to another. An additional complicating factor is that priorities may vary as among backups to be performed, with performance of some backups having a relatively higher priority than performance of other backups. Further, the need for a backup can be identified at any time. Considerations such as these can make it difficult to identify and provision backup resources for one or more backups.
More particularly, it can be difficult to perform effective provisioning of static capacity without having timely and accurate information as to what the needs for the backup resources are likely to be. However, because the extent to which backup resources are needed at any given time can be quite dynamic, there will invariably be guesswork involved in provisioning static backup capacity, with the result that in some cases, too many resources, or excess capacity, will be provisioned, thus wasting available capacity that could be used for other processes. In other cases, it can turn out that the capacity of backup resources that have been provisioned is inadequate. In this instance, there is a significant risk that the enterprise responsible for performing the backup may not meet the terms of its customer service level agreement (SLA) with one or more customers. One solution to this latter problem is to purchase additional backup resources. However, this is an expensive and inefficient solution.
In light of problems and shortcomings such as those noted above, it would be useful to be able to utilize backup resources in an efficient manner. It would also be useful to be able take backups while automatically and dynamically taking into account ongoing variations in backup resources needed, and available. Finally, it would be useful to be able to perform necessary backups without overloading or otherwise compromising backup resources such as database servers and storage.